查看版本方式
test@test:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.1 LTS
Release: 20.04
Codename: focal
今天學習 : 資料流重導向
- 標準輸入 (stdin) :代碼為 0 ,使用 < 或 << ;
- 標準輸出 (stdout):代碼為 1 ,使用 > 或 >> ;
- 標準錯誤輸出(stderr):代碼為 2 ,使用 2> 或 2>> ;
一般來說,檔案無法讓兩個程序同時打開還同時進行讀寫,因為這樣資料內容會反覆的被改寫掉
所以要這樣寫
echo 'IT幫' > test.txt 2> test2.txt
嘗試做鳥哥老師說的測試 :
test@test:~$ sudo find /etc -name '*passwd*' > test.txt 2>&1
[sudo] password for test:
test@test:~$ cat test.txt
/etc/security/opasswd
/etc/pam.d/chpasswd
/etc/pam.d/passwd
/etc/passwd
/etc/passwd-
test@test:~$ sudo find /etc -name '*passwd*' > test2.txt 1>&2
/etc/security/opasswd
/etc/pam.d/chpasswd
/etc/pam.d/passwd
/etc/passwd
/etc/passwd-
test@test:~$ cat test2.txt
test@test:~$
test@test:~$ sudo find /etc -name '*passwd*' > test3.txt
test@test:~$ cat test3.txt
/etc/security/opasswd
/etc/pam.d/chpasswd
/etc/pam.d/passwd
/etc/passwd
/etc/passwd-
讓使用者在 console 輸入文字保存在指定文件
可以使用 eof 來做結尾,假如按 ctrl + d
會跳出訊息警告
test@test:~$ cat > text.txt << eof
> 123
> 456
> -bash: warning: here-document at line 79 delimited by end-of-file (wanted `eof')
學習 : 管線 (pipe) |
,鳥哥的話
讀者在前幾堂課曾經看過類似『 ll /etc | more 』的指令,較特別的是管線 (pipe, |) 的功能。管線的意思是, 將前一個指令的標準輸出作為下一個指令的標準輸入來處理!
注意 :
這個管線命令『 | 』僅能處理經由前面一個指令傳來的正確資訊,也就是 standard output 的資訊,對於
stdandard error 並沒有直接處理的能力
,如果你需要處理 standard error output ,就得要搭配 2>&1
這種方式來處理才行了。
學習 : 鳥哥私房菜 - 第 9 堂課:正規表示法與 shell script 初探
只需要 inet 的資料方式 :
test@test:~$ ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
ether 02:42:5b:9c:f9:c3 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.31.121.160 netmask 255.255.240.0 broadcast 172.31.127.255
inet6 fe80::215:5dff:fe01:2b5a prefixlen 64 scopeid 0x20<link>
ether 00:15:5d:01:2b:5a txqueuelen 1000 (Ethernet)
RX packets 302654 bytes 343694659 (343.6 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 111160 bytes 13659665 (13.6 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 635 bytes 53365 (53.3 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 635 bytes 53365 (53.3 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
test@test:~$ ifconfig | grep 'inet[[:space:]]'
inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
inet 172.31.121.160 netmask 255.255.240.0 broadcast 172.31.127.255
inet 127.0.0.1 netmask 255.0.0.0